package com.obomprogramador.mservice.signature; import static org.junit.Assert.*; import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; import java.security.InvalidKeyException; import java.security.KeyStoreException; import java.security.NoSuchAlgorithmException; import java.security.NoSuchProviderException; import java.security.SignatureException; import java.security.UnrecoverableKeyException; import java.security.cert.CertificateException; import org.apache.commons.codec.DecoderException; import org.apache.commons.codec.binary.Hex; import org.apache.commons.io.IOUtils; import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; import org.junit.Test; import com.obomprogramador.mservice.signature.signer.SignerSample; import com.obomprogramador.mservice.signature.signer.VerifySignature; public class TestSignature { private Logger logger = LogManager.getLogger(this.getClass()); @Test public void test() throws UnrecoverableKeyException, KeyStoreException, NoSuchAlgorithmException, CertificateException, IOException, InvalidKeyException, NoSuchProviderException, SignatureException, DecoderException { byte [] assinatura = SignerSample.signTestFile(); assertTrue(assinatura != null); String saida = Hex.encodeHexString(assinatura); logger.debug("Assinatura: " + saida); // Verifica a assinatura: InputStream filepath = SignerSample.class.getClassLoader().getResourceAsStream("arquivo.txt"); byte [] bTexto = IOUtils.toByteArray(filepath); String texto = new String(bTexto, "UTF-8"); logger.debug("Texto: " + texto); boolean resultado = VerifySignature.verify(saida, texto, "*", "meucertificado", "teste001"); assertTrue(resultado); /* // Verifica com keystore externa (troque o path antes de rodar esse teste) resultado = VerifySignature.verify(saida, texto, "/home/cleuton/wsDropwizard01/certstore/verifykeystore.jks", "meucertificado", "teste001"); assertTrue(resultado); */ // Altera o texto e verifica novamente: bTexto[5] = 61; String texto2 = new String(bTexto, "UTF-8"); resultado = VerifySignature.verify(saida, texto2, "*", "meucertificado", "teste001"); assertFalse(resultado); } //C:/Users/55018335734/wsDropwizard01/certstore/verifykeystore.jks }